﻿Public Class Persona : Implements IEquatable(Of Persona)
   Private _Nombre As String
    Private _Contraseña As String
    ''' <summary>
    ''' Obtiene el nombre de la persona. Deverá tener como mínimo 2 caracteres y como máximo 30
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Nombre As String
        Get
            Return _Nombre
        End Get
        Set(ByVal value As String)
            If value.Length >= 2 AndAlso value.Length <= 30 Then
                _Nombre = value
            Else
                _Nombre = Nothing
            End If
        End Set
    End Property
    ''' <summary>
    ''' Obtiene la constraseña. Mínimo debe de tener 8 caracteres
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Contraseña As String
        Get
            Return _Contraseña
        End Get
        Set(ByVal value As String)
            If value.Length >= 8 Then
                _Contraseña = value
            Else
                _Contraseña = Nothing
            End If
        End Set
    End Property
    ''' <summary>
    ''' Constructor vacio
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()

    End Sub
    ''' <summary>
    ''' Constructor: nombre y contraseña
    ''' </summary>
    ''' <param name="nombre">Nombre de la persona</param>
    ''' <param name="contra">Constraseña de la persona</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal nombre As String, ByVal contra As String)
        Me.Nombre = nombre
        Me.Contraseña = contra
    End Sub
    ''' <summary>
    ''' Define cuando se consideran iguales dos personas, y es cuando siendo del mismo tipo (Administrador o cliente) les coincide el nombre
    ''' </summary>
    ''' <param name="other"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overloads Function Equals(other As Persona) As Boolean Implements IEquatable(Of Persona).Equals
        Return other IsNot Nothing AndAlso other.Nombre.ToLower = Me.Nombre.ToLower
    End Function
End Class
